/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.sunspotworld;

import com.sun.spot.io.j2me.radiogram.Radiogram;
import com.sun.spot.io.j2me.radiogram.RadiogramConnection;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.microedition.io.Connector;
import javax.microedition.io.Datagram;
import javax.swing.JOptionPane;

/**
 *
 * @author Salaver
 */
public class HiloSensoresInternos extends Thread{
    
    public boolean corriendo = true;
    ConexionBD con = new ConexionBD();
    
    public void cosechando(){
        try {
            while (corriendo){
                    if (HidroponiaHost.cosecha.etapa.getId()>1){
                        //sensoresInternos();
                    }
                    Thread.sleep(50000);
                }
             
        } catch (InterruptedException ex) {
                Logger.getLogger(HiloSensoresInternos.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
 
        
 
   
      public void sensoresInternos(){
        try {
            con.conectar();
            //Process process = Runtime.getRuntime().exec("C:\\Users\\Salaver\\Documents\\NetBeansProjects\\host\\trunk\\GoIO_DeviceCheck.exe");
            Runtime rt = Runtime.getRuntime();
            Process p = rt.exec("cmd.exe /c start C:\\Users\\Salaver\\Documents\\NetBeansProjects\\host\\trunk\\ph\\ph.exe");
            Runtime rt2 = Runtime.getRuntime();
            Process p2 = rt2.exec("cmd.exe /c start C:\\Users\\Salaver\\Documents\\NetBeansProjects\\host\\trunk\\ce\\ce.exe");
            Thread.sleep(10000);
            FileReader fr = new FileReader("C:\\Users\\Salaver\\Documents\\NetBeansProjects\\host\\trunk\\HidroponiaDesktop\\ph.txt");
            BufferedReader br = new BufferedReader(fr);
            String phx = br.readLine();
            FileReader fr2 = new FileReader("C:\\Users\\Salaver\\Documents\\NetBeansProjects\\host\\trunk\\HidroponiaDesktop\\ce.txt");
            BufferedReader br2 = new BufferedReader(fr2);
            String cex = br2.readLine();
            Double ce = Double.parseDouble(cex)/1000;
            Double ph = Double.parseDouble(phx);
            HidroponiaHost.dialesPH.setValor(ph);
            br.close();
            HidroponiaHost.dialesA.setValor(ce);
            br.close();
            System.out.println("medida "+phx+" "+cex);
            Date now = new Date();
            SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm");
            SimpleDateFormat sdf2 = new SimpleDateFormat("mm");
            //actualizar reloj
           // if (("20".equals(sdf2.format(now))) || ("40".equals(sdf2.format(now))) || ("00".equals(sdf2.format(now)))){
                String query1 = "INSERT INTO medidor_mezcla VALUES(3,"+HidroponiaHost.cosecha.mezcla.getId()+",'"+sdf.format(now)+"',"+ph+")";
                con.insertar(query1);
                String query2 = "INSERT INTO medidor_mezcla VALUES(4,"+HidroponiaHost.cosecha.mezcla.getId()+",'"+sdf.format(now)+"',"+ce+")";
                con.insertar(query2);
                if ((ph > HidroponiaHost.cosecha.mezcla.rangoPH.getAlto()) || (ce > HidroponiaHost.cosecha.mezcla.rangoC.getAlto())){
                    if (HidroponiaHost.cosecha.etapa.getId() == 2){
                        System.out.println("vertiendo nutriente 1");
                        int r = HidroponiaHost.cosecha.mezcla.nutriente1.getRestante();
                        if (r<3) {
                            JOptionPane.showMessageDialog(HidroponiaHost.bienvenido,
                            "Debe recargar el nutriente numero 1!, luego presione OK");
                            HidroponiaHost.cosecha.mezcla.nutriente1.setRestante(HidroponiaHost.cosecha.mezcla.nutriente1.getCapacidad());
                            r=HidroponiaHost.cosecha.mezcla.nutriente1.getCapacidad();
                        }
                        HidroponiaHost.hiloS.transmitir(2, 0, 1);
                        Thread.sleep(3000);
                        HidroponiaHost.hiloS.transmitir(2, 0, 0);
                        HidroponiaHost.cosecha.mezcla.nutriente1.setRestante(r-3);
                        String query3 = "UPDATE nutriente SET restante="+HidroponiaHost.cosecha.mezcla.nutriente1.getRestante()+" WHERE id=1";
                        con.insertar(query3);
                        String query4 = "INSERT INTO nutriente_mezcla VALUES(1,"+HidroponiaHost.cosecha.mezcla.getId()+",'"+sdf.format(now)+"','"+sdf.format((now.getTime()+3000))+"')";
                        System.out.println("query4 "+query4);
                        con.insertar(query4);
                    } else if (HidroponiaHost.cosecha.etapa.getId() == 3){
                        System.out.println("vertiendo nutriente 2");
                        int r = HidroponiaHost.cosecha.mezcla.nutriente2.getRestante();
                        if (r<3) {
                            JOptionPane.showMessageDialog(HidroponiaHost.bienvenido,
                            "Debe recargar el nutriente numero 1!, luego presione OK");
                            HidroponiaHost.cosecha.mezcla.nutriente2.setRestante(HidroponiaHost.cosecha.mezcla.nutriente2.getCapacidad());
                            r=HidroponiaHost.cosecha.mezcla.nutriente2.getCapacidad();
                        }
                        HidroponiaHost.hiloS.transmitir(2, 1, 1);
                        Thread.sleep(3000);
                        HidroponiaHost.hiloS.transmitir(2, 1, 0);
                        HidroponiaHost.cosecha.mezcla.nutriente2.setRestante(r-3);
                        String query3 = "UPDATE nutriente SET restante="+HidroponiaHost.cosecha.mezcla.nutriente2.getRestante()+" WHERE id=2";
                        con.insertar(query3);
                        String query4 = "INSERT INTO nutriente_mezcla VALUES(2,"+HidroponiaHost.cosecha.mezcla.getId()+",'"+sdf.format(now)+"','"+sdf.format((now.getTime()+3000))+"')";
                        con.insertar(query4);
                    } else if (HidroponiaHost.cosecha.etapa.getId() == 4){
                        System.out.println("vertiendo nutriente 4");
                        int r = HidroponiaHost.cosecha.mezcla.nutriente3.getRestante();
                        if (r<3) {
                            JOptionPane.showMessageDialog(HidroponiaHost.bienvenido,
                            "Debe recargar el nutriente numero 1!, luego presione OK");
                            HidroponiaHost.cosecha.mezcla.nutriente3.setRestante(HidroponiaHost.cosecha.mezcla.nutriente3.getCapacidad());
                            r=HidroponiaHost.cosecha.mezcla.nutriente3.getCapacidad();
                        }
                        HidroponiaHost.hiloS.transmitir(2, 2, 1);
                        Thread.sleep(3000);
                        HidroponiaHost.hiloS.transmitir(2, 2, 0);
                        HidroponiaHost.cosecha.mezcla.nutriente3.setRestante(r-3);
                        String query3 = "UPDATE nutriente SET restante="+HidroponiaHost.cosecha.mezcla.nutriente3.getRestante()+" WHERE id=3";
                        con.insertar(query3);
                        String query4 = "INSERT INTO nutriente_mezcla VALUES(3,"+HidroponiaHost.cosecha.mezcla.getId()+",'"+sdf.format(now)+"','"+sdf.format((now.getTime()+3000))+"')";
                        con.insertar(query4);
                    }
                } else if ((ph < HidroponiaHost.cosecha.mezcla.rangoPH.getBajo()) || (ce < HidroponiaHost.cosecha.mezcla.rangoC.getBajo())){
                        System.out.println("vertiendo nutriente 1");
                        int r = HidroponiaHost.cosecha.mezcla.nutriente4.getRestante();
                        if (r<3) {
                            JOptionPane.showMessageDialog(HidroponiaHost.bienvenido,
                            "Debe recargar el nutriente numero 1!, luego presione OK");
                            HidroponiaHost.cosecha.mezcla.nutriente4.setRestante(HidroponiaHost.cosecha.mezcla.nutriente4.getCapacidad());
                            r=HidroponiaHost.cosecha.mezcla.nutriente4.getCapacidad();
                        }
                        HidroponiaHost.hiloS.transmitir(2, 3, 1);
                        Thread.sleep(3000);
                        HidroponiaHost.hiloS.transmitir(2, 3, 0);
                        HidroponiaHost.cosecha.mezcla.nutriente4.setRestante(r-3);
                        String query3 = "UPDATE nutriente SET restante="+HidroponiaHost.cosecha.mezcla.nutriente4.getRestante()+" WHERE id=4";
                        con.insertar(query3);
                        String query4 = "INSERT INTO nutriente_mezcla VALUES(4,"+HidroponiaHost.cosecha.mezcla.getId()+",'"+sdf.format(now)+"','"+sdf.format((now.getTime()+3000))+"')";
                        con.insertar(query4);
                }
           // }
        } catch (FileNotFoundException ex) {
            Logger.getLogger(Cosecha.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(Cosecha.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex) {
            Logger.getLogger(Cosecha.class.getName()).log(Level.SEVERE, null, ex);
        } catch (InterruptedException ex) {
            Logger.getLogger(HiloSensoresInternos.class.getName()).log(Level.SEVERE, null, ex);
        }
        con.desconectar();
    }
    
    public void terminarCosecha(){
        this.corriendo = false;
    }
   
    public void run(){
        try {
            System.out.println("comienzo de internos");
            Thread.sleep(5000);
            cosechando();
        } catch (InterruptedException ex) {
            Logger.getLogger(HiloSensoresInternos.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
}
